Stored Procedures এবং Functions হল PostgreSQL এবং অন্যান্য ডেটাবেসে ব্যবহৃত দুটি গুরুত্বপূর্ণ কনসেপ্ট যা ডেটাবেস লজিক এবং অপারেশনগুলোকে সহজ, পুনঃব্যবহারযোগ্য এবং সেন্ট্রালাইজড করতে সহায়তা করে। এগুলি ডেটাবেসে একটি নির্দিষ্ট কাজ সম্পাদন করার জন্য প্রোগ্রামেবল কোড ব্লক তৈরি করে, যেগুলি পরে একাধিকবার কল করা যেতে পারে।
1. Stored Procedures (স্টোরড প্রোসিজার)
Stored Procedures হল একটি ধরনের প্রোগ্রাম বা স্ক্রিপ্ট যা ডেটাবেস সার্ভারে সংরক্ষিত থাকে এবং ডেটাবেসে নির্দিষ্ট কাজ করার জন্য বারবার ব্যবহৃত হতে পারে। স্টোরড প্রোসিজারগুলিতে আপনি একাধিক SQL স্টেটমেন্ট থাকতে পারেন এবং আপনি প্রয়োজনে এক বা একাধিক আর্গুমেন্ট পাস করতে পারেন।
স্টোরড প্রোসিজারের সুবিধা:
- কোড রিইউসেবিলিটি: একবার লিখে প্রোসিজারটি বারবার ব্যবহার করা যায়।
- পারফরম্যান্স: স্টোরড প্রোসিজার ডেটাবেস সার্ভারে রান করার ফলে এক্সিকিউশন দ্রুত হয়।
- কেন্দ্রীভূত লজিক: বিভিন্ন অ্যাপ্লিকেশন থেকে একই লজিক ব্যবহার করা সহজ।
- ট্রানজেকশন হ্যান্ডলিং: স্টোরড প্রোসিজারের মধ্যে ট্রানজেকশন ব্যবস্থাপনা করা সম্ভব।
স্টোরড প্রোসিজার তৈরি করা:
CREATE PROCEDURE update_student_age(IN student_id INT, IN new_age INT)
LANGUAGE plpgsql
AS ;
এই স্টোরড প্রোসিজারে student_id এবং new_age ইনপুট আর্গুমেন্ট হিসেবে নেয় এবং students টেবিলের ওই ছাত্রের বয়স আপডেট করে।
স্টোরড প্রোসিজার কল করা:
CALL update_student_age(1, 22);
এখানে, CALL কমান্ড ব্যবহার করে স্টোরড প্রোসিজারটি কল করা হয়েছে।
2. Functions (ফাংশন)
Functions হল SQL কমান্ড বা কোড ব্লক যা নির্দিষ্ট ইনপুট নিয়ে কিছু কার্যকরী কাজ করে এবং ফলস্বরূপ একটি ভ্যালু রিটার্ন করে। Functions সাধারণত ডেটাবেসের মধ্যে পুনঃব্যবহারযোগ্য লজিক বা ক্যালকুলেশন সম্পাদন করতে ব্যবহৃত হয়।
ফাংশনের সুবিধা:
- ফলস্বরূপ প্রদান: ফাংশন কোনো ভ্যালু রিটার্ন করতে পারে (যেমন
int,varchar, ইত্যাদি)। - ডেটাবেসে কাজ করার জন্য: SQL স্টেটমেন্টগুলির উপর লজিক প্রয়োগ করে রিটার্ন ভ্যালু প্রদান করতে পারে।
- ক্যালকুলেশন: ফাংশন ক্যালকুলেশন এবং ডেটা ট্রান্সফরমেশন করতে ব্যবহার হয়।
ফাংশন তৈরি করা:
CREATE FUNCTION get_student_age(student_id INT)
RETURNS INT
LANGUAGE plpgsql
AS ;
এটি একটি ফাংশন যা student_id ইনপুট হিসেবে নেয় এবং সেই ছাত্রের বয়স (age) রিটার্ন করে।
ফাংশন কল করা:
SELECT get_student_age(1);
এখানে, SELECT ব্যবহার করে ফাংশনটি কল করা হয়েছে এবং ফাংশনটির রিটার্ন ভ্যালু পাওয়া যাচ্ছে।
Stored Procedures এবং Functions এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Stored Procedure | Function |
|---|---|---|
| ফলস্বরূপ | কোন ফলস্বরূপ রিটার্ন নাও করতে পারে। | একটি নির্দিষ্ট ভ্যালু রিটার্ন করে। |
| ব্যবহার | সাধারণত সার্ভার সাইড লজিক চালানোর জন্য ব্যবহার করা হয়। | সাধারণত ক্যালকুলেশন বা ডেটা রিটার্ন করার জন্য ব্যবহৃত হয়। |
| ট্রানজেকশন ম্যানেজমেন্ট | টানজেকশন ম্যানেজমেন্ট করতে পারে (কমিট বা রোলব্যাক)। | ট্রানজেকশন ম্যানেজমেন্ট করতে পারে না। |
| কোল | CALL কমান্ড দিয়ে কল করা হয়। | SELECT বা অন্য SQL কমান্ডে কল করা হয়। |
| প্যারামিটার | ইনপুট প্যারামিটার নিয়ে কাজ করতে পারে। | ইনপুট প্যারামিটার নিয়ে কাজ করতে পারে। |
3. ফাংশন এবং স্টোরড প্রোসিজারের ব্যবহার
- Stored Procedures:
- যখন আপনি একাধিক SQL স্টেটমেন্ট একত্রে চালাতে চান।
- যখন একটি নির্দিষ্ট লজিক বা কাজ বারবার ব্যবহার করতে চান, যেমন ডেটা আপডেট বা ডিলিট করা।
- ট্রানজেকশন পরিচালনা করতে চান (কমিট বা রোলব্যাক সহ)।
- Functions:
- যখন আপনি কোনো ক্যালকুলেশন বা ডেটা পরিবর্তন ছাড়া ফলস্বরূপ মান (Value) চান।
- ডেটাবেসের মধ্যে নির্দিষ্ট ডেটার উপর গণনা বা প্রক্রিয়া করতে চাইলে।
সারাংশ
- Stored Procedures হল ডেটাবেস সার্ভারে সংরক্ষিত কোড যা একাধিক SQL স্টেটমেন্ট একত্রে কার্যকর করতে ব্যবহৃত হয় এবং এর ফলে আপনাকে পুনরায় একই কোড লিখতে হয় না।
- Functions হল SQL কোড ব্লক যা একটি নির্দিষ্ট মান রিটার্ন করে এবং সাধারণত ক্যালকুলেশন বা প্রক্রিয়াকরণে ব্যবহৃত হয়।
এটি PostgreSQL ডেটাবেসে প্রোগ্রামেবল লজিক এবং কার্যকারিতা যোগ করতে সাহায্য করে, এবং আপনি এটি একাধিক ডেটাবেস অ্যাপ্লিকেশন ও সিস্টেমে ব্যবহার করতে পারেন।
Read more